package com.hzw.saas.web.app.old.storage.param;

import java.io.Serializable;

import com.hzw.saas.api.storage.enums.ResourceStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @author zzl
 * @since 02/26/2021
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
// @ApiModel("查询资源参数")
public class ResourceFolderGetParam implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 目录ID
     * 特殊：0或空值指定根目录
     */
    @ApiModelProperty(value = "目录ID, 特殊：0-根目录", position = 1, hidden = true)
    private String folderId;

    /**
     * 资源状态
     */
    @ApiModelProperty(value = "资源状态，200-正常，300-回收", position = 2, hidden = true)
    private Integer status;

    /**
     * 子目录层级
     * -1或空 获取所有子目录和文件,默认
     * 0 获取目录自身信息
     * 1 获取目录自身与1级子目录和文件信息
     * 2 获取目录自身与1-2级子目录和文件信息
     * ...
     */
    @ApiModelProperty(value = "子目录层级,-1或空-获取所有子目录和文件,默认, 0-获取目录自身信息, 1-获取目录自身与1级子目录和文件信息,以此类推", position = 3)
    private Integer pathLevel;

    /**
     * 是否获取文件，true-获取目录和文件，false-只获取目录
     */
    @ApiModelProperty(value = "是否获取文件，true-获取目录和文件，false-只获取目录", position = 4)
    private Boolean withFile;

    public void init(String folderId) {
        if (pathLevel == null)
            pathLevel = -1;
        if (status == null)
            status = ResourceStatusEnum.NORMAL.getCode();
    }
}
